      Function Partial_Saturation(Satum,Iswch,Isatu,Asatu)
      
      Use Kindfile
      Use Constant,  ONLY: Icout
      
      Implicit None
      Integer Iswch,Isatu
      Real (Kind=Nkind) Satum,Asatu(*),Partial_Saturation,Esatur,Bsatu(40)
      Real (Kind=Nkind) Fperma
      External Esatur ! Effective Saturation
      External Fperma
      If (Isatu.Eq.1.Or.Isatu.Eq.0) Then
         If (Iswch.Eq.0) Then
!.... Constant
            Write(Icout,*)'Pc Is Constant And Equal To Asatu(1)'
         Else If (Iswch.Eq.1) Then
!.... Function Value
            Partial_Saturation=Asatu(1)
         Else If (Iswch.Eq.2) Then
!.... Derivative
            Partial_Saturation=0.0D0
         Else
            Print *,'Isatu:',Isatu
            Call Termination( 'Partial_Saturation-1: Iswch Not Implemented')
         End If
      Else
         Print *,'Isatu,Iswch,Satum:',Isatu,Iswch,Satum
         Print *,'Asatu:',Asatu(1:8)
         Call Termination('Partial_Saturation-101: Isatu Not Implemented')
      End If
      If (Iswch.Eq.2.And.Partial_Saturation.Gt.0.0D0) Then
         Call Termination( 'Partial_Saturation-102: Slope Of Partial_Saturation Should Not Be +Ve')
      End If
      Return
      End